[INFO] cloning repository https://github.com/quattervals/dl_instrument
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/quattervals/dl_instrument" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquattervals%2Fdl_instrument", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquattervals%2Fdl_instrument'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dcc22e6b11affc1163a79f753b99543956eed65a
[INFO] testing quattervals/dl_instrument against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fquattervals%2Fdl_instrument" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/quattervals/dl_instrument
[INFO] finished tweaking git repo https://github.com/quattervals/dl_instrument
[INFO] tweaked toml for git repo https://github.com/quattervals/dl_instrument written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/quattervals/dl_instrument on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/quattervals/dl_instrument already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 27b67755775409724cb791acf0f6db60bd8ab8e411dbd2ebf260b2dd11a4dfad
[INFO] running `Command { std: "docker" "start" "-a" "27b67755775409724cb791acf0f6db60bd8ab8e411dbd2ebf260b2dd11a4dfad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "27b67755775409724cb791acf0f6db60bd8ab8e411dbd2ebf260b2dd11a4dfad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27b67755775409724cb791acf0f6db60bd8ab8e411dbd2ebf260b2dd11a4dfad", kill_on_drop: false }`
[INFO] [stdout] 27b67755775409724cb791acf0f6db60bd8ab8e411dbd2ebf260b2dd11a4dfad
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 921b01646691eca4a6a024c6bbd83efff864dd4d46423bf17320e26de93b818f
[INFO] running `Command { std: "docker" "start" "-a" "921b01646691eca4a6a024c6bbd83efff864dd4d46423bf17320e26de93b818f", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling serde_with_macros v3.12.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling serde_with v3.12.0
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling instrument_stats v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     /// the hand made algorithm is 15 times slower than with serde
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     Ok(())
[INFO] [stdout]    |     ------ rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Instrument {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 32 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 33 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 34 |     priceChange: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 36 |     priceChangePercent: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 38 |     lastPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 39 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 40 |     lastQty: f64,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 42 |     open: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 44 |     high: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 45 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 46 |     low: f64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 48 |     volume: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 49 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 50 |     amount: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     askPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 55 |     openTime: u64, // could use a newtype to wrap the time nicely.
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     closeTime: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     firstTradeId: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 58 |     tradeCount: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 60 |     strikePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 61 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 62 |     exercisePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instrument` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_from_reader` is never used
[INFO] [stdout]    --> src/main.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn deserialize_from_reader(filename: &str) -> Result<Vec<Instrument>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.29s
[INFO] running `Command { std: "docker" "inspect" "921b01646691eca4a6a024c6bbd83efff864dd4d46423bf17320e26de93b818f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "921b01646691eca4a6a024c6bbd83efff864dd4d46423bf17320e26de93b818f", kill_on_drop: false }`
[INFO] [stdout] 921b01646691eca4a6a024c6bbd83efff864dd4d46423bf17320e26de93b818f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 82195a399489013c610dd601032f36d1373f0ea17c7d9abcc425637836b1ce85
[INFO] running `Command { std: "docker" "start" "-a" "82195a399489013c610dd601032f36d1373f0ea17c7d9abcc425637836b1ce85", kill_on_drop: false }`
[INFO] [stderr]    Compiling instrument_stats v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 83 |     /// the hand made algorithm is 15 times slower than with serde
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     Ok(())
[INFO] [stdout]    |     ------ rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Instrument {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 32 |     symbol: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 33 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 34 |     priceChange: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 35 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 36 |     priceChangePercent: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 38 |     lastPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 39 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 40 |     lastQty: f64,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 42 |     open: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 44 |     high: f64,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 45 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 46 |     low: f64,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 47 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 48 |     volume: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 49 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 50 |     amount: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     askPrice: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 55 |     openTime: u64, // could use a newtype to wrap the time nicely.
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 56 |     closeTime: u64,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     firstTradeId: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 58 |     tradeCount: u64,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 60 |     strikePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 61 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stdout] 62 |     exercisePrice: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Instrument` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize_from_reader` is never used
[INFO] [stdout]    --> src/main.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn deserialize_from_reader(filename: &str) -> Result<Vec<Instrument>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.73s
[INFO] running `Command { std: "docker" "inspect" "82195a399489013c610dd601032f36d1373f0ea17c7d9abcc425637836b1ce85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82195a399489013c610dd601032f36d1373f0ea17c7d9abcc425637836b1ce85", kill_on_drop: false }`
[INFO] [stdout] 82195a399489013c610dd601032f36d1373f0ea17c7d9abcc425637836b1ce85
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 20a501684785fc64145153e63ea241a404f534ededb4ba1520a048e12a6539b5
[INFO] running `Command { std: "docker" "start" "-a" "20a501684785fc64145153e63ea241a404f534ededb4ba1520a048e12a6539b5", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stdout] 
[INFO] [stderr]   --> src/main.rs:83:5
[INFO] [stdout] running 1 test
[INFO] [stderr]    |
[INFO] [stderr] 83 |     /// the hand made algorithm is 15 times slower than with serde
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 84 |     Ok(())
[INFO] [stderr]    |     ------ rustdoc does not generate documentation for expressions
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/main.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 31 | struct Instrument {
[INFO] [stderr]    |        ---------- fields in this struct
[INFO] [stderr] 32 |     symbol: String,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 33 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 34 |     priceChange: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 35 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 36 |     priceChangePercent: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 37 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 38 |     lastPrice: f64,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 39 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 40 |     lastQty: f64,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 41 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 42 |     open: f64,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 43 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 44 |     high: f64,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 45 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 46 |     low: f64,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 47 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 48 |     volume: f64,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 49 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 50 |     amount: f64,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |     askPrice: f64,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 55 |     openTime: u64, // could use a newtype to wrap the time nicely.
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 56 |     closeTime: u64,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 57 |     firstTradeId: u64,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 58 |     tradeCount: u64,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 59 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 60 |     strikePrice: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 61 |     #[serde_as(as = "DisplayFromStr")]
[INFO] [stderr] 62 |     exercisePrice: f64,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Instrument` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `deserialize_from_reader` is never used
[INFO] [stderr]    --> src/main.rs:122:4
[INFO] [stderr]     |
[INFO] [stderr] 122 | fn deserialize_from_reader(filename: &str) -> Result<Vec<Instrument>, Box<dyn std::error::Error>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `instrument_stats` (bin "instrument_stats" test) generated 3 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.07s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/instrument_stats-0edc75bd2b549aec)
[INFO] [stdout] test tests::test_average_bid_price ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "20a501684785fc64145153e63ea241a404f534ededb4ba1520a048e12a6539b5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "20a501684785fc64145153e63ea241a404f534ededb4ba1520a048e12a6539b5", kill_on_drop: false }`
[INFO] [stdout] 20a501684785fc64145153e63ea241a404f534ededb4ba1520a048e12a6539b5
